<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>FLITr: flitr::MultiCPUHistogramConsumer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">FLITr
   &#160;<span id="projectnumber">1.x</span>
   </div>
   <div id="projectbrief">Framework for Live Image Transformation.</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classflitr_1_1_multi_c_p_u_histogram_consumer.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classflitr_1_1_multi_c_p_u_histogram_consumer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">flitr::MultiCPUHistogramConsumer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="multi__cpuhistogram__consumer_8h_source.html">multi_cpuhistogram_consumer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for flitr::MultiCPUHistogramConsumer:</div>
<div class="dyncontent">
<div class="center"><img src="classflitr_1_1_multi_c_p_u_histogram_consumer__inherit__graph.png" border="0" usemap="#flitr_1_1_multi_c_p_u_histogram_consumer_inherit__map" alt="Inheritance graph"/></div>
<map name="flitr_1_1_multi_c_p_u_histogram_consumer_inherit__map" id="flitr_1_1_multi_c_p_u_histogram_consumer_inherit__map">
<area shape="rect" id="node2" href="classflitr_1_1_image_consumer.html" title="{flitr::ImageConsumer\n|&#45; SharedImageBuffer_\l&#45; ImageProducer_\l|+ ImageConsumer()\l+ ~ImageConsumer()\l+ getNumReadSlotsAvailable()\l+ getNumReadSlotsReserved()\l+ reserveReadSlot()\l+ releaseReadSlot()\l+ init()\l# setSharedImageBuffer()\l}" alt="" coords="21,5,227,229"/></map>
</div>
<div class="dynheader">
Collaboration diagram for flitr::MultiCPUHistogramConsumer:</div>
<div class="dyncontent">
<div class="center"><img src="classflitr_1_1_multi_c_p_u_histogram_consumer__coll__graph.png" border="0" usemap="#flitr_1_1_multi_c_p_u_histogram_consumer_coll__map" alt="Collaboration graph"/></div>
<map name="flitr_1_1_multi_c_p_u_histogram_consumer_coll__map" id="flitr_1_1_multi_c_p_u_histogram_consumer_coll__map">
<area shape="rect" id="node9" href="classflitr_1_1_multi_c_p_u_histogram_consumer_thread.html" title="{flitr::MultiCPUHistogram\lConsumerThread\n|&#45; ShouldExit_\l|+ MultiCPUHistogramConsumer\lThread()\l+ run()\l+ setExit()\l}" alt="" coords="19,1691,229,1845"/><area shape="rect" id="node2" href="classflitr_1_1_image_consumer.html" title="{flitr::ImageConsumer\n||+ ImageConsumer()\l+ ~ImageConsumer()\l+ getNumReadSlotsAvailable()\l+ getNumReadSlotsReserved()\l+ reserveReadSlot()\l+ releaseReadSlot()\l+ init()\l# setSharedImageBuffer()\l}" alt="" coords="21,1003,227,1210"/><area shape="rect" id="node4" href="classflitr_1_1_image_producer.html" title="{flitr::ImageProducer\n|# ImageFormat_\l# SharedImageBuffer_\l# CreateMetadataFunction_\l|+ ImageProducer()\l+ ~ImageProducer()\l+ init()\l+ getFormat()\l+ getNumWriteSlotsAvailable()\l+ trigger()\l+ seek()\l+ getLeastNumReadSlotsAvailable()\l+ setCreateMetadataFunction()\l# releaseReadSlotCallback()\l# addConsumer()\l# reserveWriteSlot()\l# releaseWriteSlot()\l}" alt="" coords="56,5,291,333"/><area shape="rect" id="node6" href="classflitr_1_1_shared_image_buffer.html" title="Class for passing images between producers and consumers." alt="" coords="227,400,461,936"/></map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3acd2aaf0b6a9d2149596f0136bb11d8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a3acd2aaf0b6a9d2149596f0136bb11d8">MultiCPUHistogramConsumer</a> (<a class="el" href="classflitr_1_1_image_producer.html">ImageProducer</a> &amp;producer, uint32_t images_per_slot, uint32_t pixel_stride=1, uint32_t image_stride=1)</td></tr>
<tr class="memitem:ade22050ac75aeefce3175817da4e17eb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#ade22050ac75aeefce3175817da4e17eb">~MultiCPUHistogramConsumer</a> ()</td></tr>
<tr class="memitem:a9c5097cfb472e0fa4b6705a9fb0b8e84"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a9c5097cfb472e0fa4b6705a9fb0b8e84">init</a> ()</td></tr>
<tr class="memitem:ab323f56ec0086ecdfba599c9bb50d072"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#ab323f56ec0086ecdfba599c9bb50d072">getNumPixels</a> (uint32_t im_number) const </td></tr>
<tr class="memitem:a33f4c9f982736fcf9ea2f28f700cc534"><td class="memItemLeft" align="right" valign="top">std::vector&lt; int32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a33f4c9f982736fcf9ea2f28f700cc534">getHistogram</a> (uint32_t im_number)</td></tr>
<tr class="memitem:a340054c56f061d3cc0649e452d105766"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a340054c56f061d3cc0649e452d105766">isHistogramUpdated</a> (uint32_t im_number) const </td></tr>
<tr class="inherit_header pub_methods_classflitr_1_1_image_consumer"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classflitr_1_1_image_consumer')"><img src="closed.png" alt="-"/>&nbsp;Public Member Functions inherited from <a class="el" href="classflitr_1_1_image_consumer.html">flitr::ImageConsumer</a></td></tr>
<tr class="memitem:a58f2c3e5758b892ebeff2188aab0a024 inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a58f2c3e5758b892ebeff2188aab0a024">ImageConsumer</a> (<a class="el" href="classflitr_1_1_image_producer.html">ImageProducer</a> &amp;producer)</td></tr>
<tr class="memitem:a3c4c0805b3365307b3083dcb346b2af4 inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a3c4c0805b3365307b3083dcb346b2af4">~ImageConsumer</a> ()</td></tr>
<tr class="memitem:aa8d2103df0dac8755b1a0fdc206932f7 inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#aa8d2103df0dac8755b1a0fdc206932f7">getNumReadSlotsAvailable</a> ()</td></tr>
<tr class="memitem:a17c1abc98c01ef35c6cb0b7de7cc94ef inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">virtual uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a17c1abc98c01ef35c6cb0b7de7cc94ef">getNumReadSlotsReserved</a> ()</td></tr>
<tr class="memitem:a384a5dbebf79677f73a53688edda4d71 inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">virtual std::vector&lt; <a class="el" href="classflitr_1_1_image.html">Image</a> ** &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a384a5dbebf79677f73a53688edda4d71">reserveReadSlot</a> ()</td></tr>
<tr class="memitem:a7a84273411d105818dd6f1212cb78724 inherit pub_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a7a84273411d105818dd6f1212cb78724">releaseReadSlot</a> ()</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:afe7ede48a9bece041edf8c5817ac126f"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#afe7ede48a9bece041edf8c5817ac126f">calcHistogramIdentityMap</a> ()</td></tr>
<tr class="memitem:aae40b7649f92d6847648bc23dae27ad2"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; int32_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#aae40b7649f92d6847648bc23dae27ad2">calcRefHistogramForEqualisation</a> (uint32_t histoSum)</td></tr>
<tr class="memitem:a4b0f9e169e7488267c23ae848254be5a"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a4b0f9e169e7488267c23ae848254be5a">calcHistogramMatchMap</a> (const std::vector&lt; int32_t &gt; &amp;inHisto, const std::vector&lt; int32_t &gt; &amp;refHisto)</td></tr>
<tr class="memitem:abd4d9d81985039918e1dea3514293e59"><td class="memItemLeft" align="right" valign="top">static const std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#abd4d9d81985039918e1dea3514293e59">calcHistogramStretchMap</a> (const std::vector&lt; int32_t &gt; &amp;inHisto, const uint32_t histoSum, const double ignoreBelow=0.0, const double ignoreAbove=1.0)</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a9fe745ce41185751554ed1d9c6e30d6b"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classflitr_1_1_image_format.html">ImageFormat</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a9fe745ce41185751554ed1d9c6e30d6b">ImageFormat_</a></td></tr>
<tr class="memitem:a6b3056c8b84180d4e15bc7d65f9d50dd"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a6b3056c8b84180d4e15bc7d65f9d50dd">ImagesPerSlot_</a></td></tr>
<tr class="memitem:a2ce871e06a7075fdeb23e8ef6562a44b"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a2ce871e06a7075fdeb23e8ef6562a44b">PixelStride_</a></td></tr>
<tr class="memitem:a1dc4b5b3554d3016cf38a99eeed57c57"><td class="memItemLeft" align="right" valign="top">const uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a1dc4b5b3554d3016cf38a99eeed57c57">ImageStride_</a></td></tr>
<tr class="memitem:acbfdedbe76d23d4ce5374ddbaa0cf66b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer_thread.html">MultiCPUHistogramConsumerThread</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#acbfdedbe76d23d4ce5374ddbaa0cf66b">Thread_</a></td></tr>
<tr class="memitem:a7cb1119106fc9b50d002ef84d40ba070"><td class="memItemLeft" align="right" valign="top">std::vector<br class="typebreak"/>
&lt; std::tr1::shared_ptr<br class="typebreak"/>
&lt; OpenThreads::Mutex &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a7cb1119106fc9b50d002ef84d40ba070">CalcMutexes_</a></td></tr>
<tr class="memitem:aaef25f8d242196e0ca5b57a821f09c25"><td class="memItemLeft" align="right" valign="top">std::vector<br class="typebreak"/>
&lt; std::tr1::shared_ptr<br class="typebreak"/>
&lt; std::vector&lt; int32_t &gt; &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#aaef25f8d242196e0ca5b57a821f09c25">Histograms_</a></td></tr>
<tr class="memitem:ab70e0dba6abfa4c2e3bd13c8b3b18b39"><td class="memItemLeft" align="right" valign="top">std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#ab70e0dba6abfa4c2e3bd13c8b3b18b39">HistogramUpdatedVect_</a></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a1bd2183da618ccecbc5349a47d603f08"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html#a1bd2183da618ccecbc5349a47d603f08">MultiCPUHistogramConsumerThread</a></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pro_methods_classflitr_1_1_image_consumer"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classflitr_1_1_image_consumer')"><img src="closed.png" alt="-"/>&nbsp;Protected Member Functions inherited from <a class="el" href="classflitr_1_1_image_consumer.html">flitr::ImageConsumer</a></td></tr>
<tr class="memitem:a4f800e1ab9f514f6a642c4c91165e494 inherit pro_methods_classflitr_1_1_image_consumer"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classflitr_1_1_image_consumer.html#a4f800e1ab9f514f6a642c4c91165e494">setSharedImageBuffer</a> (<a class="el" href="classflitr_1_1_shared_image_buffer.html">SharedImageBuffer</a> &amp;b)</td></tr>
<tr class="memdesc:a4f800e1ab9f514f6a642c4c91165e494 inherit pro_methods_classflitr_1_1_image_consumer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called once we get added as a consumer.  <a href="#a4f800e1ab9f514f6a642c4c91165e494"></a><br/></td></tr>
</table>
<h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a3acd2aaf0b6a9d2149596f0136bb11d8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MultiCPUHistogramConsumer::MultiCPUHistogramConsumer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classflitr_1_1_image_producer.html">ImageProducer</a> &amp;&#160;</td>
          <td class="paramname"><em>producer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>images_per_slot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>pixel_stride</em> = <code>1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>image_stride</em> = <code>1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classflitr_1_1_multi_c_p_u_histogram_consumer_a3acd2aaf0b6a9d2149596f0136bb11d8_cgraph.png" border="0" usemap="#classflitr_1_1_multi_c_p_u_histogram_consumer_a3acd2aaf0b6a9d2149596f0136bb11d8_cgraph" alt=""/></div>
<map name="classflitr_1_1_multi_c_p_u_histogram_consumer_a3acd2aaf0b6a9d2149596f0136bb11d8_cgraph" id="classflitr_1_1_multi_c_p_u_histogram_consumer_a3acd2aaf0b6a9d2149596f0136bb11d8_cgraph">
<area shape="rect" id="node3" href="classflitr_1_1_image_producer.html#a9495277a8122ec0f7cfb63dc83ceb955" title="flitr::ImageProducer\l::getFormat" alt="" coords="320,5,456,51"/></map>
</div>
</p>

</div>
</div>
<a class="anchor" id="ade22050ac75aeefce3175817da4e17eb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">MultiCPUHistogramConsumer::~MultiCPUHistogramConsumer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="classflitr_1_1_multi_c_p_u_histogram_consumer_ade22050ac75aeefce3175817da4e17eb_cgraph.png" border="0" usemap="#classflitr_1_1_multi_c_p_u_histogram_consumer_ade22050ac75aeefce3175817da4e17eb_cgraph" alt=""/></div>
<map name="classflitr_1_1_multi_c_p_u_histogram_consumer_ade22050ac75aeefce3175817da4e17eb_cgraph" id="classflitr_1_1_multi_c_p_u_histogram_consumer_ade22050ac75aeefce3175817da4e17eb_cgraph">
<area shape="rect" id="node3" href="classflitr_1_1_multi_c_p_u_histogram_consumer_thread.html#a8498a6bb7d5d68a8d31e62193979b9d8" title="flitr::MultiCPUHistogram\lConsumerThread::setExit" alt="" coords="269,14,440,61"/></map>
</div>
</p>

</div>
</div>
<h2>Member Function Documentation</h2>
<a class="anchor" id="afe7ede48a9bece041edf8c5817ac126f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; uint8_t &gt; MultiCPUHistogramConsumer::calcHistogramIdentityMap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a4b0f9e169e7488267c23ae848254be5a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; uint8_t &gt; MultiCPUHistogramConsumer::calcHistogramMatchMap </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int32_t &gt; &amp;&#160;</td>
          <td class="paramname"><em>inHisto</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; int32_t &gt; &amp;&#160;</td>
          <td class="paramname"><em>refHisto</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="abd4d9d81985039918e1dea3514293e59"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; uint8_t &gt; MultiCPUHistogramConsumer::calcHistogramStretchMap </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int32_t &gt; &amp;&#160;</td>
          <td class="paramname"><em>inHisto</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint32_t&#160;</td>
          <td class="paramname"><em>histoSum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>ignoreBelow</em> = <code>0.0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>ignoreAbove</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aae40b7649f92d6847648bc23dae27ad2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; int32_t &gt; MultiCPUHistogramConsumer::calcRefHistogramForEqualisation </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>histoSum</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a33f4c9f982736fcf9ea2f28f700cc534"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int32_t&gt; flitr::MultiCPUHistogramConsumer::getHistogram </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>im_number</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ab323f56ec0086ecdfba599c9bb50d072"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t flitr::MultiCPUHistogramConsumer::getNumPixels </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>im_number</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9c5097cfb472e0fa4b6705a9fb0b8e84"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool MultiCPUHistogramConsumer::init </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reimplemented from <a class="el" href="classflitr_1_1_image_consumer.html#a9ad528933a705ab2bb44a388a2937f33">flitr::ImageConsumer</a>.</p>

</div>
</div>
<a class="anchor" id="a340054c56f061d3cc0649e452d105766"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool flitr::MultiCPUHistogramConsumer::isHistogramUpdated </td>
          <td>(</td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>im_number</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2>Friends And Related Function Documentation</h2>
<a class="anchor" id="a1bd2183da618ccecbc5349a47d603f08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">friend class <a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer_thread.html">MultiCPUHistogramConsumerThread</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">friend</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2>Member Data Documentation</h2>
<a class="anchor" id="a7cb1119106fc9b50d002ef84d40ba070"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; std::tr1::shared_ptr&lt;OpenThreads::Mutex&gt; &gt; flitr::MultiCPUHistogramConsumer::CalcMutexes_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aaef25f8d242196e0ca5b57a821f09c25"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; std::tr1::shared_ptr&lt; std::vector&lt;int32_t&gt; &gt; &gt; flitr::MultiCPUHistogramConsumer::Histograms_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ab70e0dba6abfa4c2e3bd13c8b3b18b39"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;bool&gt; flitr::MultiCPUHistogramConsumer::HistogramUpdatedVect_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9fe745ce41185751554ed1d9c6e30d6b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="classflitr_1_1_image_format.html">ImageFormat</a>&gt; flitr::MultiCPUHistogramConsumer::ImageFormat_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a6b3056c8b84180d4e15bc7d65f9d50dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t flitr::MultiCPUHistogramConsumer::ImagesPerSlot_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1dc4b5b3554d3016cf38a99eeed57c57"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t flitr::MultiCPUHistogramConsumer::ImageStride_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2ce871e06a7075fdeb23e8ef6562a44b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const uint32_t flitr::MultiCPUHistogramConsumer::PixelStride_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="acbfdedbe76d23d4ce5374ddbaa0cf66b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer_thread.html">MultiCPUHistogramConsumerThread</a>* flitr::MultiCPUHistogramConsumer::Thread_</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>include/flitr/<a class="el" href="multi__cpuhistogram__consumer_8h_source.html">multi_cpuhistogram_consumer.h</a></li>
<li>src/flitr/<a class="el" href="multi__cpuhistogram__consumer_8cpp.html">multi_cpuhistogram_consumer.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceflitr.html">flitr</a></li><li class="navelem"><a class="el" href="classflitr_1_1_multi_c_p_u_histogram_consumer.html">MultiCPUHistogramConsumer</a></li>
    <li class="footer">Generated on Thu Dec 6 2012 09:15:45 for FLITr by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1.2 </li>
  </ul>
</div>
</body>
</html>
